home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / AIncludes / QD3DStorage.a < prev    next >
Encoding:
Text File  |  1998-04-09  |  9.3 KB  |  327 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DStorage.a
  3. ;
  4. ;    Contains:    Abstraction to deal with various types of stream-based storage devices        
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    QuickTime 3.0
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__QD3DSTORAGE__') = 'UNDEFINED' THEN
  19. __QD3DSTORAGE__ SET 1
  20.  
  21.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  22.     include 'QD3D.a'
  23.     ENDIF
  24.  
  25.     IF TARGET_OS_MAC THEN
  26.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  27.     include 'MacTypes.a'
  28.     ENDIF
  29.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  30.     include 'Files.a'
  31.     ENDIF
  32.     ENDIF    ; TARGET_OS_MAC
  33. ; ******************************************************************************
  34. ; **                                                                             **
  35. ; **                                Storage Routines                             **
  36. ; **                                                                             **
  37. ; ****************************************************************************
  38.  
  39. ;
  40. ; extern TQ3ObjectType Q3Storage_GetType(TQ3StorageObject storage)
  41. ;
  42.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  43.         IMPORT_CFM_FUNCTION Q3Storage_GetType
  44.     ENDIF
  45.  
  46. ;
  47. ; extern TQ3Status Q3Storage_GetSize(TQ3StorageObject storage, unsigned long *size)
  48. ;
  49.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  50.         IMPORT_CFM_FUNCTION Q3Storage_GetSize
  51.     ENDIF
  52.  
  53. ;  
  54. ; *    Reads "dataSize" bytes starting at offset in storage, copying into data. 
  55. ; *    sizeRead returns the number of bytes filled in. 
  56. ; *    
  57. ; *    You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeRead
  58.  
  59. ;
  60. ; extern TQ3Status Q3Storage_GetData(TQ3StorageObject storage, unsigned long offset, unsigned long dataSize, unsigned char *data, unsigned long *sizeRead)
  61. ;
  62.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  63.         IMPORT_CFM_FUNCTION Q3Storage_GetData
  64.     ENDIF
  65.  
  66. ;  
  67. ; *    Write "dataSize" bytes starting at offset in storage, copying from data. 
  68. ; *    sizeWritten returns the number of bytes filled in. 
  69. ; *    
  70. ; *    You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeWritten
  71.  
  72. ;
  73. ; extern TQ3Status Q3Storage_SetData(TQ3StorageObject storage, unsigned long offset, unsigned long dataSize, const unsigned char *data, unsigned long *sizeWritten)
  74. ;
  75.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  76.         IMPORT_CFM_FUNCTION Q3Storage_SetData
  77.     ENDIF
  78.  
  79. ; ******************************************************************************
  80. ; **                                                                             **
  81. ; **                             Memory Storage Prototypes                         **
  82. ; **                                                                             **
  83. ; ****************************************************************************
  84.  
  85. ;
  86. ; extern TQ3ObjectType Q3MemoryStorage_GetType(TQ3StorageObject storage)
  87. ;
  88.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  89.         IMPORT_CFM_FUNCTION Q3MemoryStorage_GetType
  90.     ENDIF
  91.  
  92. ; * These calls COPY the buffer into QD3D space
  93.  
  94. ;
  95. ; extern TQ3StorageObject Q3MemoryStorage_New(const unsigned char *buffer, unsigned long validSize)
  96. ;
  97.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  98.         IMPORT_CFM_FUNCTION Q3MemoryStorage_New
  99.     ENDIF
  100.  
  101. ;
  102. ; extern TQ3Status Q3MemoryStorage_Set(TQ3StorageObject storage, const unsigned char *buffer, unsigned long validSize)
  103. ;
  104.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  105.         IMPORT_CFM_FUNCTION Q3MemoryStorage_Set
  106.     ENDIF
  107.  
  108. ; * These calls use the pointer given - you must dispose it when you're through
  109.  
  110. ;
  111. ; extern TQ3StorageObject Q3MemoryStorage_NewBuffer(unsigned char *buffer, unsigned long validSize, unsigned long bufferSize)
  112. ;
  113.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  114.         IMPORT_CFM_FUNCTION Q3MemoryStorage_NewBuffer
  115.     ENDIF
  116.  
  117. ;
  118. ; extern TQ3Status Q3MemoryStorage_SetBuffer(TQ3StorageObject storage, unsigned char *buffer, unsigned long validSize, unsigned long bufferSize)
  119. ;
  120.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  121.         IMPORT_CFM_FUNCTION Q3MemoryStorage_SetBuffer
  122.     ENDIF
  123.  
  124. ;
  125. ; extern TQ3Status Q3MemoryStorage_GetBuffer(TQ3StorageObject storage, unsigned char **buffer, unsigned long *validSize, unsigned long *bufferSize)
  126. ;
  127.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  128.         IMPORT_CFM_FUNCTION Q3MemoryStorage_GetBuffer
  129.     ENDIF
  130.  
  131.     IF TARGET_OS_MAC THEN
  132. ; ******************************************************************************
  133. ; **                                                                             **
  134. ; **                                Macintosh Handles Prototypes                 **
  135. ; **                                                                             **
  136. ; ****************************************************************************
  137.  
  138. ;  Handle Storage is a subclass of Memory Storage 
  139. ;
  140. ; extern TQ3StorageObject Q3HandleStorage_New(Handle handle, unsigned long validSize)
  141. ;
  142.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  143.         IMPORT_CFM_FUNCTION Q3HandleStorage_New
  144.     ENDIF
  145.  
  146. ;
  147. ; extern TQ3Status Q3HandleStorage_Set(TQ3StorageObject storage, Handle handle, unsigned long validSize)
  148. ;
  149.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  150.         IMPORT_CFM_FUNCTION Q3HandleStorage_Set
  151.     ENDIF
  152.  
  153. ;
  154. ; extern TQ3Status Q3HandleStorage_Get(TQ3StorageObject storage, Handle *handle, unsigned long *validSize)
  155. ;
  156.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  157.         IMPORT_CFM_FUNCTION Q3HandleStorage_Get
  158.     ENDIF
  159.  
  160. ; ******************************************************************************
  161. ; **                                                                             **
  162. ; **                                Macintosh Storage Prototypes                 **
  163. ; **                                                                             **
  164. ; ****************************************************************************
  165.  
  166. ;
  167. ; extern TQ3StorageObject Q3MacintoshStorage_New(short fsRefNum)
  168. ;
  169.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  170.         IMPORT_CFM_FUNCTION Q3MacintoshStorage_New
  171.     ENDIF
  172.  
  173. ;  Note: This storage is assumed open 
  174. ;
  175. ; extern TQ3Status Q3MacintoshStorage_Set(TQ3StorageObject storage, short fsRefNum)
  176. ;
  177.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  178.         IMPORT_CFM_FUNCTION Q3MacintoshStorage_Set
  179.     ENDIF
  180.  
  181. ;
  182. ; extern TQ3Status Q3MacintoshStorage_Get(TQ3StorageObject storage, short *fsRefNum)
  183. ;
  184.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  185.         IMPORT_CFM_FUNCTION Q3MacintoshStorage_Get
  186.     ENDIF
  187.  
  188. ;
  189. ; extern TQ3ObjectType Q3MacintoshStorage_GetType(TQ3StorageObject storage)
  190. ;
  191.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  192.         IMPORT_CFM_FUNCTION Q3MacintoshStorage_GetType
  193.     ENDIF
  194.  
  195.  
  196. ; ******************************************************************************
  197. ; **                                                                             **
  198. ; **                            Macintosh FSSpec Storage Prototypes                 **
  199. ; **                                                                             **
  200. ; ****************************************************************************
  201.  
  202. ;
  203. ; extern TQ3StorageObject Q3FSSpecStorage_New(const FSSpec *fs)
  204. ;
  205.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  206.         IMPORT_CFM_FUNCTION Q3FSSpecStorage_New
  207.     ENDIF
  208.  
  209. ;
  210. ; extern TQ3Status Q3FSSpecStorage_Set(TQ3StorageObject storage, const FSSpec *fs)
  211. ;
  212.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  213.         IMPORT_CFM_FUNCTION Q3FSSpecStorage_Set
  214.     ENDIF
  215.  
  216. ;
  217. ; extern TQ3Status Q3FSSpecStorage_Get(TQ3StorageObject storage, FSSpec *fs)
  218. ;
  219.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  220.         IMPORT_CFM_FUNCTION Q3FSSpecStorage_Get
  221.     ENDIF
  222.  
  223.     ENDIF    ; TARGET_OS_MAC
  224.     IF TARGET_OS_WIN32 THEN
  225. ; ******************************************************************************
  226. ; **                                                                             **
  227. ; **                            Win32 HANDLE Storage Prototypes                     **
  228. ; **                                                                             **
  229. ; ****************************************************************************
  230.  
  231. ;
  232. ; extern TQ3StorageObject Q3Win32Storage_New(HANDLE hFile)
  233. ;
  234.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  235.         IMPORT_CFM_FUNCTION Q3Win32Storage_New
  236.     ENDIF
  237.  
  238. ;
  239. ; extern TQ3Status Q3Win32Storage_Set(TQ3StorageObject storage, HANDLE hFile)
  240. ;
  241.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  242.         IMPORT_CFM_FUNCTION Q3Win32Storage_Set
  243.     ENDIF
  244.  
  245. ;
  246. ; extern TQ3Status Q3Win32Storage_Get(TQ3StorageObject storage, HANDLE *hFile)
  247. ;
  248.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  249.         IMPORT_CFM_FUNCTION Q3Win32Storage_Get
  250.     ENDIF
  251.  
  252.     ENDIF    ; TARGET_OS_WIN32
  253.  
  254. ; ******************************************************************************
  255. ; **                                                                             **
  256. ; **                                    Unix Prototypes                             **
  257. ; **                                                                             **
  258. ; ****************************************************************************
  259.  
  260. ;
  261. ; extern TQ3StorageObject Q3UnixStorage_New(FILE *storage)
  262. ;
  263.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  264.         IMPORT_CFM_FUNCTION Q3UnixStorage_New
  265.     ENDIF
  266.  
  267. ;
  268. ; extern TQ3Status Q3UnixStorage_Set(TQ3StorageObject storage, FILE *stdFile)
  269. ;
  270.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  271.         IMPORT_CFM_FUNCTION Q3UnixStorage_Set
  272.     ENDIF
  273.  
  274. ;
  275. ; extern TQ3Status Q3UnixStorage_Get(TQ3StorageObject storage, FILE **stdFile)
  276. ;
  277.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  278.         IMPORT_CFM_FUNCTION Q3UnixStorage_Get
  279.     ENDIF
  280.  
  281. ;
  282. ; extern TQ3ObjectType Q3UnixStorage_GetType(TQ3StorageObject storage)
  283. ;
  284.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  285.         IMPORT_CFM_FUNCTION Q3UnixStorage_GetType
  286.     ENDIF
  287.  
  288. ; ******************************************************************************
  289. ; **                                                                             **
  290. ; **                                Unix Path Prototypes                         **
  291. ; **                                                                             **
  292. ; ****************************************************************************
  293.  
  294. ;
  295. ; extern TQ3StorageObject Q3UnixPathStorage_New(const char *pathName)
  296. ;
  297.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  298.         IMPORT_CFM_FUNCTION Q3UnixPathStorage_New
  299.     ENDIF
  300.  
  301. ;  C string 
  302. ;
  303. ; extern TQ3Status Q3UnixPathStorage_Set(TQ3StorageObject storage, const char *pathName)
  304. ;
  305.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  306.         IMPORT_CFM_FUNCTION Q3UnixPathStorage_Set
  307.     ENDIF
  308.  
  309. ;  C string 
  310. ;
  311. ; extern TQ3Status Q3UnixPathStorage_Get(TQ3StorageObject storage, char *pathName)
  312. ;
  313.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  314.         IMPORT_CFM_FUNCTION Q3UnixPathStorage_Get
  315.     ENDIF
  316.  
  317. ;  pathName is a buffer 
  318.  
  319.     ENDIF ; __QD3DSTORAGE__ 
  320.  
  321.